Data switches interconnect network devices residing in different parts of a network. Such switches typically include network interface modules having ports supporting external network devices. In order to avoid having to “flood” packets on ports of the switch which do not support a destination device, such switches often dynamically learn associations between network interface modules and the devices they support. Such associations are often learned through what is called a “source learning” process. In an exemplary source learning process, source addresses in packets are reviewed by the switch upon ingress and unknown source addresses are submitted to a source learning function resident on the switch. The source learning function typically updates the switch such that future packets destined to that source can be forwarded without unnecessary flooding.
While the source learning function has worked well in data switches, it typically gives rise to certain complications as the backplanes in such switches change from the single flow path variety to a multiple flow path variety. A conventional backplane used to interconnect network interface modules in a modular data switch has a common path for all packets between two network interface modules. All packets transmitted on the backplane for a particular flow typically have been propagated on a common path and the network interface modules have been responsible for individually reviewing the packets and making filtering decisions. However, due to demands for faster switching, there is an emerging trend favoring multiple flow path backplanes.
In a multiple flow path backplane architecture, packets destined for a destination device may be transmitted to a multicast fabric for queuing, replication, and forwarding to all network interface modules on a set of point-to-point paths before the destination device/network interface module association becomes known. On the other hand, packets destined for the destination device may be transmitted to a unicast fabric for queuing and forwarding to a single network interface module on a point-to-point path after the destination device/network interface module association becomes known.
Accordingly, in the case where destination device/network interface module associations are established through source learning, packets for a particular flow may be transmitted to the multicast fabric prior to learning the destination device's address. On the other hand, packets for the flow may be transmitted to the unicast fabric once the destination device's address is learned. This dynamic transition from multicast to unicast fabrics, often made in connection with source learning, gives rise to certain technical challenges. For instance, a packet transmitted to the unicast fabric at time t2 may be forwarded to the network interface module associated with the destination device before a packet for the same flow transmitted to the multicast fabric at an earlier time t1. This would result in the network interface module receiving and processing packets for the flow out of order, disrupting the integrity of the flow.
Therefore, there is a need for a multiple flow path data switch that is capable of maintaining flow integrity during path transitions.